home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
demos
/
st_conn.lzh
/
10KHZ.LZH
/
10KHZ.S
< prev
next >
Wrap
Text File
|
1985-11-20
|
20KB
|
968 lines
MOVE.L SP,A5
LEA STACK,SP
MOVE.L 4(A5),A5
MOVE.L $C(A5),D0
ADD.L $14(A5),D0
ADD.L $1C(A5),D0
ADD.L #$100,D0
MOVE.L D0,-(SP)
MOVE.L A5,-(SP)
CLR -(SP)
MOVE.W #$4A,-(SP)
TRAP #1
LEA 12(SP),SP
CLR.L -(SP)
MOVE #$20,-(SP)
TRAP #1
LEA 6(SP),SP
MOVE.L D0,SAVE_STACK
JSR SAVE_INTERRUPTS
JSR INPUT_MODULE_NAME
JSR SET_SCREEN
JSR INIT_MUSIC
JSR INIT_INTERRUPTS
JSR PLAY_MUSIC
TOO_BAD
JSR REINSTALL_INTERRUPTS
MOVE.L SAVE_STACK,-(SP)
MOVE #$20,-(SP)
TRAP #1
LEA 6(SP),SP
CLR -(SP)
TRAP #1
SAVE_INTERRUPTS
PEA MOUSOFF
MOVE.W #1,-(SP)
MOVE.W #25,-(SP)
TRAP #14
LEA 8(SP),SP
MOVE.L $70.W,SAVE_VBL
MOVE.B $FFFFFA07.W,MFP
MOVE.B $FFFFFA09.W,MFP+1
MOVEM.L $FFFF8240.W,D0-D7
MOVEM.L D0-D7,SHIFTER
MOVE.B $FFFF8260.W,SHIFTER+32
MOVE.L $134.W,TIMERA
MOVE.B $FFFFFA0B.W,TIMERA+4
MOVE.B $FFFFFA0F.W,TIMERA+5
MOVE.B $FFFFFA13.W,TIMERA+6
MOVE.B $FFFFFA19.W,TIMERA+7
MOVE.B $FFFFFA1F.W,TIMERA+8
RTS
INPUT_MODULE_NAME
MOVE.L #INDICATION,-(SP)
MOVE #9,-(SP)
TRAP #1
LEA 6(SP),SP
PEA FILENAME
MOVE.W #$A,-(SP)
TRAP #1
LEA 6(SP),SP
RTS
SET_SCREEN
MOVEM.L NO_COLOR,D0-D7
MOVEM.L D0-D7,$FFFF8240.W
MOVE.L SCREEN2,D0
LSR.L #8,D0
LEA $FFFF8201.W,A0
MOVEP D0,(A0)
MOVE.B #0,$FFFF8260.W
MOVEM.L PAL,D0-D7
MOVEM.L D0-D7,$FFFF8240.W
LEA $80000,A0
RHA
MOVE.L #0,-(A0)
CMP.L #$70000,A0
BNE RHA
RTS
INIT_MUSIC
CLR -(SP)
MOVE.L #FILENAME+2,-(SP)
MOVE #$3D,-(SP)
TRAP #1
LEA 8(SP),SP
MOVE.L D0,D1
TST.W D0
BMI ERROR
MOVE.L #BUFFER,-(SP)
MOVE.L #$FFFFF,-(SP)
MOVE D1,-(SP)
MOVE #$3F,-(SP)
TRAP #1
LEA 12(SP),SP
TST.L D0
BMI ERROR
MOVE D1,-(SP)
MOVE #$3E,-(SP)
TRAP #1
LEA 4(SP),SP
TST.W D0
BMI ERROR
LEA BUFFER,A0
LEA 20+30*15(A0),A0
MOVEQ #0,D0
MOVE.B (A0)+,D0
MOVEQ #0,D1
MOVE.B (A0)+,D1
LEA BUFFER,A0
LEA 30*16(A0),A0
ADD D1,A0
MOVE.L A0,PAT
LEA BUFFER,A0
LEA 20+30*15+2(A0),A0
MOVEQ #0,D1
MOVEQ #0,D2
HOW_MANY_PAT
MOVE.B (A0)+,D1
CMP.B D1,D2
BPL CONT_HOW_MANY_PAT
MOVE.B D1,D2
CONT_HOW_MANY_PAT
DBRA D0,HOW_MANY_PAT
ADD.B #1,D2
MULU #1024,D2
MOVE.L PAT,D0
ADD.L D2,D0
MOVE.L D0,A2
LEA BUFFER,A0
LEA 20(A0),A0
LEA INS,A1
LEA 16(A1),A1
MOVEQ #15-1,D0
READ_INS
MOVEQ #0,D1
MOVE 22(A0),D1
LSL.L #1,D1
MOVE.L D1,(A1)
MOVE.L D1,4(A1)
MOVEQ #0,D1
MOVE 24(A0),D1
BEQ CONT_READ_VOLUME
SUBQ #1,D1
CONT_READ_VOLUME
MOVE D1,12(A1)
MOVEQ #0,D1
MOVE 28(A0),D1
LSL.L #1,D1
CMP.B #2,D1
BNE CONT_READ_INS
MOVEQ #0,D1
CONT_READ_INS
SWAP D1
MOVE.L D1,8(A1)
MOVE.L (A1),D1
MOVE.L A2,4(A1)
ADD.L D1,A2
LEA 30(A0),A0
LEA 16(A1),A1
DBRA D0,READ_INS
LEA INS,A0
LEA 16(A0),A0
LEA BUFFER,A1
LEA 20(A1),A1
LEA $68000,A2
MOVEQ #15-1,D0
REVERSE
MOVEQ #0,D1
MOVE 22(A1),D1
BEQ END_REVERSE_THIS_INS
LSL.L #1,D1
SUBQ.L #1,D1
MOVE.L D1,D2
MOVE.L 4(A0),A3
REV_1
MOVE.B (A3)+,(A2)
ADD.B #$80,(A2)+
DBRA D1,REV_1
MOVE.L 4(A0),A3
REV_2
MOVE.B -(A2),(A3)+
DBRA D2,REV_2
END_REVERSE_THIS_INS
LEA 16(A0),A0
LEA 30(A1),A1
DBRA D0,REVERSE
RTS
INIT_INTERRUPTS
MFP_RESET
MOVE.B #0,$FFFFFA07.W
MOVE.B #0,$FFFFFA09.W
YAMAHA_RESET
MOVE.B #0,$FFFF8800.W
MOVE.B #0,$FFFF8802.W
MOVE.B #1,$FFFF8800.W
MOVE.B #0,$FFFF8802.W
MOVE.B #2,$FFFF8800.W
MOVE.B #0,$FFFF8802.W
MOVE.B #3,$FFFF8800.W
MOVE.B #0,$FFFF8802.W
MOVE.B #4,$FFFF8800.W
MOVE.B #0,$FFFF8802.W
MOVE.B #5,$FFFF8800.W
MOVE.B #0,$FFFF8802.W
MOVE.B #7,$FFFF8800.W
MOVE.B #$FF,$FFFF8802.W
MOVE.B #8,$FFFF8800.W
MOVE.B #0,$FFFF8802.W
MOVE.B #9,$FFFF8800.W
MOVE.B #0,$FFFF8802.W
MOVE.B #10,$FFFF8800.W
MOVE.B #0,$FFFF8802.W
RTS
REINSTALL_INTERRUPTS
MOVEM.L NO_COLOR,D0-D7
MOVEM.L D0-D7,$FFFF8240.W
MOVE.L SAVE_VBL,$70.W
MOVE.L TIMERA,$134.W
MOVE.B TIMERA+4,$FFFFFA0B.W
MOVE.B TIMERA+5,$FFFFFA0F.W
MOVE.B TIMERA+6,$FFFFFA13.W
MOVE.B TIMERA+7,$FFFFFA19.W
MOVE.B TIMERA+8,$FFFFFA1F.W
MOVE.B MFP,$FFFFFA07.W
MOVE.B MFP+1,$FFFFFA09.W
PEA MOUSON
MOVE.W #1,-(SP)
MOVE.W #25,-(SP)
TRAP #14
LEA 8(SP),SP
MOVE.L #CLS,-(SP)
MOVE #9,-(SP)
TRAP #1
LEA 6(SP),SP
MOVEQ #0,D0
MOVE.B SHIFTER+32,D0
MOVE D0,-(SP)
MOVE.L #$78000,-(SP)
MOVE.L #$78000,-(SP)
MOVE #5,-(SP)
TRAP #14
LEA 12(SP),SP
MOVEM.L SHIFTER,D0-D7
MOVEM.L D0-D7,$FFFF8240.W
RTS
ERROR
MOVE.L #TOO_BAD,(SP)
RTS
PLAY_MUSIC
;GET MUSIC GOING
ON MOVE.W #$2700,SR
LEA PLAYER_DATA,A4
MOVE.W #6,SPD+2
MOVE.B #6,SPEED(A4)
MOVE.B #1,POS(A4)
MOVE.B SEQ-2,TRK(A4)
MOVE.L #SEQ-1,MUS+2
LEA OFF,A0
LEA OFF,A1
LEA OFF,A2
LEA OFF,A3
CLR.L D0
CLR.L D1
CLR.L D2
CLR.L D3
MOVE.L #$7F8,D7
LEA $FFFF8800.W,A4
CLR.L F0+2
CLR.L F1+2
CLR.L F2+2
CLR.L F3+2
CLR.L V0+2
CLR.L V1+2
CLR.L V2+2
CLR.L V3+2
MOVE.L #AMIGA,$134.W
MOVE.B #0,$FFFFFA0B.W
MOVE.B #0,$FFFFFA0F.W
MOVE.B #0,$FFFFFA19.W
MOVE.B #0,$FFFFFA1F.W
MOVE.B #32,$FFFFFA13.W
MOVE.B #0,$FFFFFA19.W
BCLR #3,$FFFFFA17.W
MOVE.B #61,$FFFFFA1F.W
MOVE.B #1,$FFFFFA19.W
MOVE.B #32,$FFFFFA07.W
MOVE.L #VBL,$70.W
STOP #$2300
MAIN
* Put your program which use D6,A5,A6 here
CMP.B #$39,$FFFFFC02.W
BEQ END_PLAYING_MUSIC
BRA MAIN
AMIGA
SWAP D0 ;4(1/0)
SWAP D1 ;4(1/0)
SWAP D2 ;4(1/0)
SWAP D3 ;4(1/0)
V0 SUB.L #0,D0 ;16(3/0)
BMI.S L0 ;8(1/0)10
V1 SUB.L #0,D1 ;16(3/0)
BMI.S L1 ;8(1/0)10
V2 SUB.L #0,D2 ;16(3/0)
BMI.S L2 ;8(1/0)10
V3 SUB.L #0,D3 ;16(3/0)
BMI.S L3 ;8(1/0)10
OUT SWAP D0 ;4(1/0)
SWAP D1 ;4(1/0)
SWAP D2 ;4(1/0)
SWAP D3 ;4(1/0)
MOVEQ #0,D4 ;4(1/0)
MOVEQ #0,D5 ;4(1/0)
MOVE.B 0(A0,D0),D4 ;14(3/0)
MOVE.B 0(A1,D1),D5 ;14(3/0)
ADD.W D5,D4 ;4(1/0)
MOVE.B 0(A2,D2),D5 ;14(3/0)
ADD.W D5,D4 ;4(1/0)
MOVE.B 0(A3,D3),D5 ;14(3/0)
ADD.W D5,D4 ;4(1/0)
ADD.W D4,D4 ;4(1/0)
AND.W D7,D4 ;4(1/0)
MOVE.L SOUND(PC,D4),D5 ;18(4/0)
MOVE.W SOUND+4(PC,D4),D4 ;14(3/0)
MOVEP.L D5,(A4) ;24(2/4)
MOVEP.W D4,(A4) ;16(2/2)
RTE
L0 MOVE.L #0,D0
F0 MOVE.L #0,V0+2
BRA V1
L1 MOVE.L #0,D1
F1 MOVE.L #0,V1+2
BRA V2
L2 MOVE.L #0,D2
F2 MOVE.L #0,V2+2
BRA V3
L3 MOVE.L #0,D3
F3 MOVE.L #0,V3+2
BRA OUT
SOUND
DC.W $80E,$90D,$A0C,0,$80F,$903,$A00,0
DC.W $80F,$903,$A00,0,$80F,$903,$A00,0
DC.W $80F,$903,$A00,0,$80F,$903,$A00,0
DC.W $80F,$903,$A00,0,$80E,$90D,$A0B,0
DC.W $80E,$90D,$A0B,0,$80E,$90D,$A0B,0
DC.W $80E,$90D,$A0B,0,$80E,$90D,$A0B,0
DC.W $80E,$90D,$A0B,0,$80E,$90D,$A0B,0
DC.W $80E,$90D,$A0A,0,$80E,$90D,$A0A,0
DC.W $80E,$90D,$A0A,0,$80E,$90D,$A0A,0
DC.W $80E,$90C,$A0C,0,$80E,$90D,$A00,0
DC.W $80D,$90D,$A0D,0,$80D,$90D,$A0D,0
DC.W $80D,$90D,$A0D,0,$80D,$90D,$A0D,0
DC.W $80D,$90D,$A0D,0,$80D,$90D,$A0D,0
DC.W $80E,$90C,$A0B,0,$80E,$90C,$A0B,0
DC.W $80E,$90C,$A0B,0,$80E,$90C,$A0B,0
DC.W $80E,$90C,$A0B,0,$80E,$90C,$A0B,0
DC.W $80E,$90C,$A0B,0,$80E,$90C,$A0B,0
DC.W $80E,$90C,$A0A,0,$80E,$90C,$A0A,0
DC.W $80E,$90C,$A0A,0,$80E,$90C,$A0A,0
DC.W $80D,$90D,$A0C,0,$80D,$90D,$A0C,0
DC.W $80E,$90C,$A09,0,$80E,$90C,$A09,0
DC.W $80E,$90C,$A05,0,$80E,$90C,$A00,0
DC.W $80E,$90C,$A00,0,$80E,$90B,$A0B,0
DC.W $80E,$90B,$A0B,0,$80E,$90B,$A0B,0
DC.W $80E,$90B,$A0B,0,$80E,$90B,$A0A,0
DC.W $80E,$90B,$A0A,0,$80E,$90B,$A0A,0
DC.W $80D,$90D,$A0B,0,$80D,$90D,$A0B,0
DC.W $80D,$90D,$A0B,0,$80E,$90B,$A09,0
DC.W $80E,$90B,$A09,0,$80E,$90B,$A09,0
DC.W $80D,$90C,$A0C,0,$80D,$90D,$A0A,0
DC.W $80E,$90B,$A07,0,$80E,$90B,$A00,0
DC.W $80E,$90B,$A00,0,$80D,$90D,$A09,0
DC.W $80D,$90D,$A09,0,$80E,$90A,$A09,0
DC.W $80D,$90D,$A08,0,$80D,$90D,$A07,0
DC.W $80D,$90D,$A04,0,$80D,$90D,$A00,0
DC.W $80E,$90A,$A04,0,$80E,$909,$A09,0
DC.W $80E,$909,$A09,0,$80D,$90C,$A0B,0
DC.W $80E,$909,$A08,0,$80E,$909,$A08,0
DC.W $80E,$909,$A07,0,$80E,$908,$A08,0
DC.W $80E,$909,$A01,0,$80C,$90C,$A0C,0
DC.W $80D,$90C,$A0A,0,$80E,$908,$A06,0
DC.W $80E,$907,$A07,0,$80E,$908,$A00,0
DC.W $80E,$907,$A05,0,